package siruna.WE.installwidgets;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;

/**
 * Klasse die de dataset, gebruikt bij het downloaden van de lijst van
 * instaleerbare widgets, helpt opbouwen
 * 
 * @author Tim
 * 
 */
public class ParsedInstallWidgetsDataSet {
	// de lijst
	private ArrayList<HashMap<String, String>> items;

	/**
	 * hulpmethode om alles uit te schrijven
	 */

	/**
	 * Constructor
	 */
	public ParsedInstallWidgetsDataSet() {
		super();

		items = new ArrayList<HashMap<String, String>>();

	}

	public String toString() {
		StringBuffer bf = new StringBuffer();
		if (!items.isEmpty()) {

			for (int i = 0; i < items.size(); i++) {
				bf.append(i + " " + hashmaptostring(items.get(i)));
			}
		}
		return bf.toString();
	}

	/**
	 * getter van de items
	 * 
	 * @return de items
	 */
	public ArrayList<HashMap<String, String>> getItems() {
		return items;
	}

	/**
	 * Voeg een element toe aan de items
	 * 
	 * @param i
	 *            hoeveelste element
	 * @param name
	 *            naam van het element
	 * @param value
	 *            value van het element
	 */
	void addelement(int i, String name, String value) {
		// als de i een index is die nog niet is gebruikt, maw er is een nieuw
		// item begonnen.
		// maak nieuwe hashmap aan
		if (i >= items.size()) {
			HashMap<String, String> hmap = new HashMap<String, String>();
			items.add(hmap);
		}
		items.get(i).put(name, value);

	}

	/**
	 * zet de hashmap om naar ene string representatie
	 * 
	 * @param h
	 *            de hashmap
	 * @return de string
	 */
	String hashmaptostring(HashMap<String, String> h) {
		String res = "";
		Set<String> keys = h.keySet();
		for (String s : keys) {
			res += s + ":\n" + h.get(s) + "\n";
		}
		return res;
	}

}